Method of encoding graphical data

ABSTRACT

A method of encoding graphical data to be displayed by an output terminal where the output terminal has plural modes of operation and procedures are undertaken to select, using past history and future anticipated operation, the fastest and most efficient mode of operation. In the faster modes, part of the information defining the location to be reached and the symbol to be displayed are stored and remembered. In these modes less information need be transmitted to the terminal to execute a move and successive moves are thereby executed faster. The optimum mode may be selected by examining previous location information to predict a possible mode change.

United States Patent Kurata 5] Feb. 29, 1972 [54] METHOD OF ENCODINGGRAPHICAL 3,496,547 2/1970 Gorrill et a1. ..340/l72.5

DATA

Primary ExaminerPaul J. Henon [72] Inventor. George Y. Kurata, SanDiego, Calif. Assistant Examiner sydney R Chirlin [73] Assignee:Typagraph Corporation, San Diego, Calif. Attorney-Fulwider, Patton,Rieber, Lee & Utecht [22] Filed: Mar. 18, 1970 [57] ABSTRACT [2]] App!20494 A method of encoding graphical data to be displayed by an outputterminal where the output terminal has plural modes of [52] US. Cl..444/l, 340/ 172.5 operation and procedures are undertaken to select,using past Field of Search .340/1 72.5; 346/29 history and futureanticipated operation, the fastest and most efficient mode of operation.In the faster modes, part of the information defining the location to bereached and the symbol [56] References cited to be displayed are storedand remembered. in these modes UNITED STATES PATENTS less informationneed be transmitted to the tenninal to execute a move and successivemoves are thereby executed 3,434,113 3/1969 Wiley et a1 ..340/172.5 fater, The optimum mode may be selected by examining 3,199J11 8/1965Jennings previous location information to predict a possible mode3,377,622 4/1968 Burch, Jr. et al.. 340/172 5 h 3,430,207 2/1969 Davis..340/l72.5 3,438,003 4/1969 Bryan ..340/ 172.5 34 Claims, 6 DrawingFigures DA TA CA LC ULA TE A X A Q UA ORAN T UMBER QF 5TEP5 STEP SIZESSELECT MODE 0F OIJERATION 90 REPEAT PATENTEDFEB29 I972 3,646,571

I SHEET1UF4 MODE/QUAD dx dY SYMBOL MODE 1 STORED sronsn 510250 VARIABLEMODE 2 srmzzo STORED VARIABLE s'roaeo MODE 3 srozzo VARIABLE STOREDs'ronso MODE 4 sroaao VARIABLE VARIABLE 510220 CHARACTER STREAM I 2 a 45 a 1 a 9 M0051 FLAG 33 am aw SYMBOL SYMBOL SYMBOL swam. svMaoL MODE?-me @335; dz ow swam. M iv 0W 0W 2 a 4 s e- 7 8 9 M0053 FLAG gggg ax d.YSVMBOL cLx atx aLx ax z a 4 5 a A 7 s a M0054 ms MODE/ d.x 0W SYMBOL dxdv dx dY i N VEN TOR. 65026: H A u/u 7:4 M @4227, w

&4 m M alt-'9 INVEN'] (JR. 650265 Y M/MM /4TTONEV$ SHEET 2 0F 4 NUMBEROF srsps STEIP SIZES DATA QLZDRANT CALCULATE 4 SELECT MODE OF OPERATIONPAIENIEDFEB 2 9 I972 DISTANCE BYW Wm M ot, M 24202? INCIZEMENTALHORIZONTAL x 32 vrw 9 9 A4 5 R E a W A M I Dr 0 5 v n TN WM 9 W w r M 05H A an w 9 m R HM NM 9 u c M. 4

6- $9 0 D u w w. I u I. 1 d Ufld PATENTEUFEBZS I972 3.646.571

SHEET 3 OF 4 .DATA

v CALCULATE dx amps Zr @b CALCULATE STEP 5|ZE5 NO. OF 5TEP5 ARE A A 4*MULTIPLE 0F STE SIZES IS NEW SET TYPED Pomr FURTHER SVMBOL T0 THAN ONE TSIZE ?5 E17 KBLANKI REDUCE No.0; STEPS, RECALCULATE msuucss s51 TVPEDsvmsol.

T0 "BLANK" QUAORANT axon/1 NT commas ems 0F dx. PREVIOUSLY spasm MCALCULATED dv M swam. SYMBOL INVENIOR.

65026:. 2 16/0101 7 W wa M (705M653) 0&4, m M A TroE/VE V5 METHOD OFENCODING GRAPHICAL DATA BACKGROUND OF THE INVENTION The presentinvention relates generally to a method of encoding graphical data and,more particularly, to a method by which a terminal output apparatus,controlled by a digital computer, can efficiently display such data asprinted text or as graphical plots or both.

There presently exist many well-known terminal output devices capable ofpresenting encoded, computer-generated data in a form intelligible to ahuman operator. Thus, for example, a computer-controlled typewriter isoften used to present the computer-generated data in easily readable,typewritten text. Similarly, a computer-controlled digital plotter isoften used to present computer-generated data in graphical or pictorialform. Unfortunately, however, neither terminal output device above canadditionally adequately perform the function of the other. Thus, becauseof its preset character spacing and restricted directional movement, thetypewriter cannot function well as a graphical plotter. In a similarmanner, the digital plotter can, at best, only draw or plot charactersand symbols, and thus is unable to function additionally, in a practicalsense, to type textual-material.

There has recently been developed, however, an output terminal devicewhich can both type text and plot graphically or intermix the two. Forpurposes of the present application this terminal output device having acombined typing and plotting capability will be referred to as acombined terminal.

Briefly, the combined terminal comprises a typewriter mechanism havingindependent, bidirectional control of the typewriter platen and of thetype carrier head. Thus, the vertical or y-axis position of a characterto be typed may be controlled by movement of the platen while horizontalor x-axis position may be controlled by movement of the type carrierhead.

In its preferred form, the combined terminal has several significantfeatures. First, it is an incremental device. That is, the terminalmoves from its present x,y coordinate to the next, from point to pointwithout referencing to an original origin for each new point. Otherdevices of the prior art typically move a discrete distance from anoriginal origin for each successive new point.

Second, a point in the terminal coordinate system is defined withrespect to the preceding point by three characteristics in addition tothe desired symbol to be placed at the pointnamely x value (dx), y value(dy), and quadrant. Thus, three characters define the location of anypoint in the coordinate system with respect to the preceding point. Manyconventional plotters, on the other hand, must receive four charactersto identify the next desired pointnamely, x value, y value, whether x ispositive or negative, and whether y is positive or negative. Byeliminating the need for one transmitted character, the terminal thusoperates faster than plotters using four characters.

Third, the combined terminal can operate in several modes. To decidewhich mode is used for a given character stream, the terminal can lookahead and select the optimum mode. In certain cases it can look backand, based on previous moves, predict the optimum mode to switch to.

SUMMARY OF THE PRESENT INVENTION Briefly, and in general terms, thepresent invention involves a method of information handling foroperating a computercommanded, combined typing and plotting terminal, ina fast and efficient manner.

The present invention further relates to a method for encodingcomputer-generated data to be transmitted to and outputted by a combinedtyping and plotting terminal.

In addition, the present invention relates to a method for encodingcomputer-generated data so that a maximum quantity of information iscontained in a minimum number of characters. i.e., to compress the datastream and increase information density.

Also, the present invention relates to a method of selecting fromseveral operating modes for an output terminal, the mode that is optimumas to speed and efficiency.

In addition, the present invention relates to a method for moving in anx-y coordinate system expeditiously from point to point.

According to the present invention the movement from a present point toa desired new point involves calculating the quadrant of the new pointwith respect to the present point, calculating the horizontalincremental distance (Ar) along the .r-axis to the new point andcalculating the vertical incremental distance (Ay) along the y-axis tothe new point, as well as ascertaining the desired symbol to be typed.Next, the number of steps in one direction (preferably the longest of Axor Ay) is calculated where a step may comprise as many increments (dx ordy) as the physical constraints of the output terminal permits, forexample 15. Subsequently, the number of steps in the remaining directionis calculated. If more than one step (i.e., more than 15 increments) isrequired in any given direction, then the symbol typed at the end of thefirst step is set to a blank so that only a blank space is typed.Successive steps are taken in plural moves until arriving at apreliminary location within one step in bothx and y directions, of thenew point. In many situations, a change of mode is then made from theplotting mode used to reach the preliminary location to a mode formoving the final distance to the new point and typing or otherwisedisplaying the symbol.

The output terminal can operate in any one of four different modes. Eachmode has certain information (from among quadrant, dx, dy, and symbolcharacters) in storage which is remembered. Thus, only the variablecharacters need be transmitted to the terminal with a resultant shortercharacter stream and increased speed of operation of the terminal.

Certain modes are faster and more efficient than others, and certainprocedures are taken, based on past history and an ticipated futureoperation, to operate in the optimum mode.

The methods contemplated are well adapted for machine implementation bya digital computer or the like. The methods may be performed by specialpurpose computer hardware or by a general purpose computer which hasbeen programmed by appropriate software.

BRIEF DESCRIPTION OF THE DRAWINGS FIG. 1 is a table showing which of theMODE/QUAD, dx, dy, and SYMBOL characters are stored and which arevariable for each of MODES I through 4 in the method of the presentinvention;

FIG. 2 shows representative character streams for each of MODES 1through 4;

FIG. 3 is a block diagram of the basic method for encoding data, inaccordance with the present invention;

FIG. 4 is a graphical illustration showing the plotting of onerepresentative point;

FIG. 5a is a detailed block diagram of a first part of the method ofFIG. 3; and

FIG. 5b is a detailed block diagram of the remainder of the method ofFIG. 3.

DESCRIPTION OF THE PREFERRED EMBODIMENT Referring now to the drawings,and more particularly to FIG. 1 thereof, there is shown a tabulation ofthe modes in which a combined typing and plotting terminal output devicemay operate. Four characters are needed to operate in each mode. Thefirst character, MODE/QUAD," defines both the mode of operation and thequadrant of the next point (one of four quadrants of a conventionalCartesian coordinate system). The second character dx defines theincremental distance along the .r-axis for a given move, while the thirdcharacter dy defines the incremental distance along the y-axis for thesame move. The fourth character SYMBOL defines the symbol to be typed orotherwise displayed at the end of the same move at the desired point.

In each mode certain characters are stored as a given value. With thestored characters thus remembered only the variable characters need betransmitted to the Typagraph." In MODE 1, the MODE/QUAD, dx and dycharacters are stored and the SYMBOL is variable. In MODE 2, theMODE/QUAD, dx, and SYMBOL characters are stored, while dy is variable.In MODE 3, the MODE/QUAD, dy and SYMBOL characters are stored while dxis variable. Finally, in MODE 4, the MODE/QUAD and SYMBOL characters arestored while dx and dy remain variable.

FIG. 2 shows representative character streams as they would betransmitted to the Typagraph" for each of MODES 1 through 4. Eachcharacter stream is initiated by a FLAG character. The FLAG character isa normally little-used character which is given a special assignment ofcommanding a plotting sequence. Thus, in MODE 1, characters 2 through 4represent respectively the stored MODE/QUAD, dx and dy while character 5represents the desired SYMBOL. Thereafter, characters 6 through 9 eachrepresent any desired SYMBOLS. The character stream for MODE 1 thuscommands typing for five different symbols each positioned in a mannerdefined by the stored MODE/QUAD, dx and dy characters from eachpreceding symbol. In a similar manner, note that in MODE 2, the variablecharacter dy is shown as character 4 and thereafter as characters 6through 9. In MODE 3, variable character dx is shown as character 3 andas characters 6 through 9. Finally, in MODE 4 both dx and d charactersare variable, dx being shown as characters 3, 6 and 8, while dy is shownas characters 4, 7 and 9.

It is evident from the above that the nine character stream of MODE 4contains less total point information than the nine character streams ofeach of MODES 1 through 3. Thus, the stream of MODE 4 represents threeconsecutive points, the

first defined by characters 3 and 4, the second defined by characters 6and 7, and the third defined by characters 8 and 9. By comparison, thecharacter stream of MODE 3, for example, represents five consecutivepoints shown by the five following pairs of characters: 3-4, 64, 7-4,8-4 and 9-4. Since any stream of nine characters is transmitted to theTypagraph at the same speed, clearly the Typagraph will perform moremoves in a given time interval in MODE 3 than in MODE 4. The method ofencoding data, in accordance with the present invention, seeks to placea maximum amount of information in a given character stream so that aterminal device will operate in a fast and efficient manner.

FIG. 3 shows a basic method for encoding data in accordance with theinvention. The data so encoded may then be transmitted to an outputterminal for appropriate display. One suitable output terminal is theTypagraph terminal previously described.

The data 10 can have been generated by a computer as a solution to agiven problem and can be, for example, a listing of information to berepresented graphically such as points of a curve. The points may eachbe specified in terms of horizontal (x) and vertical (y) distance from acommon origin.

The data 10 is first operated on and quantized. A maximum and minimumvalue for the variables of each axis (x and y) is ascertained. The axesare laid down and labeled and grid marks are inserted. The startingpoint for the type carrier head is selected. Information handling anddata processing methods to perform these operations are well known inthe art and are not treated further herein.

The encoding method of FIG. 3 is a reiterative process for encoding datato be transmitted to the Typagraph" for display in graphical form.Basically, in moving from a given point on the graph to a desired newpoint at which a symbol is to be typed, the horizontal and verticaldistances (Ax and Ay) and the quadrant of the desired new point withrespect to the given point are calculated during calculation operation20. Further, the number of steps required to reach the desired new pointand the size of the steps is determined. Thereafter, in the selectionoperation 40 a proper mode is selected to efficiently move the firststep toward the desired new point. An appropriate character stream isgenerated by operation to command the first move. In this regard, thecharacters are preferably assembled in a desired large quantity prior tobeing transmitted to the terminal device. At the point thus reachedintermediate the given point and the desired new point, a blank" symbolset in the above character stream is typed so that a blank space appearson an appropriate recording medium, The above method is then repeated ina repeat operation the necessary number of times to reach a lastintermediate point located within one step in each direction from thedesired new point. The distance between this last intermediate point andthe desired new point is termed a remainder. The method is then repeateda last time, movement is executed to the new point and the designatedsymbol is typed.

One reason for the need to calculate successive steps to the new pointis because of mechanical constraintsin the terminal device. In theaforementioned combined terminal, the platen and type carriage aredriven by bidirectional stepping motors. A finite time after receivinga{ character stream this terminal must type a symbol. Within this timethe stepping motors can be advanced a given number of increments, forexample l5. Thus, if the desired new point is greater than 15 incrementsfrom the previous point, a blank must be typed at the end of the firstmove of 15 increments. A step thus consists of any desired distance upto a maximum distance of fifteen increments in each direction (x and y).

It is convenient to consider the total distance to be traversed betweenthe given point and the new point as comprising a given number of stepsplus a remainder, the remainder being the final distance, less than afull step, to reach the new point. The steps and remainder are traversedin a series of moves. A prime object of the method of the presentinvention is to arrive within one step of the new point in an optimummode. While it would be possible to step directly to the new point in aplotting mode, the combined terminal would lay down a blank at thedesired new point. Thereafter, a new character stream having dx and dyboth zero and specifying the symbol to be typed would have to begenerated. As will be clear from the ensuing discussion, it requiresfewer characters to move within one step of the new point and thengenerate a new character stream commanding the remainder in x, theremainder in y, and the symbol to be typed.

In accordance with the method of the present invention, aftercalculating the total incremental distance (Ax and Ay) between the givenand desired new points, the number of steps is calculated by dividingthe maximum step size (assumed to be 15 for the present terminaldevice), into the longest of Ax or Ay and truncating to the right of thedecimal point. While it is possible to set the step size at any valueless than the maximum, the explanation to follow will use the maximum.Thus, for a step size of 15, if the longest of Ax and A lies in therange 16 through 29 increments, then the number of steps is one. Forvalues of Ax or A in-the range 30 through 44, the number of steps istwo, and so forth. Thus, for example, if Ax is 39, the number of stepsrequired is two and the remainder is nine increments. If the longest ofAx and Ay is 15 or less, then it is convenient to regard this distancesimply as a remainder.

To calculate the distance to be traveled in the direction of theshortest of Ax and Ay for each step of the longest, divide the shortestby the number of steps in the longest and truncate to the right of thedecimal point. Thus, extending the above examples, ifAx is 39 and Ay is21, then for each step (dx) of 15 in x, y should be stepped (dy) 10.Thus, the first step would move dx==l5 and dy=l0; the second step wouldmove another aKFlS and another d =10, leaving a remainder of a'.\=9 anddy=l. The path followed to reach the new point (starting at the origin0,0) is shown in FIG. 4. Note that each move, whether a step or aremainder, is stated in terms of a dx and a dy with respect to theimmediately preceding location.

The quantities calculated in operation 20 are used in operation 40 toselect the optimum mode of operation of the Typagraph. The method ofFIG. 3 including the selection of modes is shown in greater detail inFIGS. 5a and 5b. The encoding methods illustrated in FIGS. 3, 5a and 5bare directed primarily to analysis and encoding of data for ultimateplotting in a graphical display and are thus concerned primarily withplotting MODES 2, 3 and 4 as opposed to text-typing MODE l In the methodof FIGS. 5a and 5b it is necessary to compare the state of the storedcharacters (the stored characters being shown in FIG..1 for variousmodes) with the calculated dx, with the calculated dy, with thequadrant, and with the symbol to be typed. If any of these fourcharacters is different in the next step to be performed from the valuestored for the immediately preceding step, then it becomes necessary tochange that one of the stored characters and transmit the new character.This change of character is incorporated in a new character stream.

Prior to making this comparison in comparison operation 50 certaindecisions have to be made. One pass through the loop of FIGS. 3, 5a and5b operates on only one step or less, i.e., one move. Thus, if the totaldistance (Ax or Ay) to the desired new point is more than one step size,then a blank symbol must be typed at the end of each step prior toreaching the desired new point. Thus, in operation 21 whether the numberof steps is greater than one is first determined. If the number of stepsis not greater than one, i.e., if the larger of Ax and A is 29 or less,then next it is determined in operation 22 whether the new point isfurther than the size of one step, i.e., further than either dx or dy.If it is not, then the comparison operation 50 is performed. If,however, it is further than the size of one step, then the symbol to betyped at the end of the first step is set to a blank at 23. Theoperations 23, 25 and 26 will be treated subsequently.

As seen in FIG. 5b, the comparison operation 50 results in a decision atoperation 51 that either all stored characters are the same as the newones or that one or more are different. From this point three generalpaths may be taken. The first path is taken irrespective of the decisionat operation 51 if the number of steps required to reach the desired newpoint is greater than one as determined at operations 52 or 53. In thisfirst path beginning at operation 61 the mode is ultimately set ineither of the faster MODES 2 or 3 at operations 64, 65 or 66.

As to the second path, if the number of steps required to reach the newpoint is not greater than one, (and if the stored characters were foundto be the same as the new characters, then an attempt is made, beginningat operation 67, to use one of the faster MODES 2 or 3 based on theprobability, determined from past experience, that MODE 2 or 3 will beproper for the next succeeding new point.

In the third path, if the number of steps required to reach the newpoint is not greater than one, and if the stored characters were foundnot to be identical with the new ones, then beginning with operation 54the mode will be set to MODE 4. However, if one but not both ofdx and dyis sufficient to reach the new point (thus requiring one step plus aremainder to reach the new point), then the sufficient one will be setto zero for the single step. Thereafter, in picking up the remainder onthe next move the suffieient one of dx or dy will be generated andplaced in a counter. It is then contemplated that the next two newpoints will have an identical sufficient incremental value. If such isthe case then these consecutive identical values will be used ultimatelyto justify a change to a faster mode.

Considering now the second path above, it will be recalled that MODE 4is the slowest mode. In MODE 4 both dx and dy are variables while inMODE 2 only d is variable (and dx is stored) and in MODE 3 only dx isvariable (and d is stored). Thus, if moving from a given point, to a newdesired point, to yet another new desired point, and so on in MODE 4 itwould be desirable to switch to a faster MODE 2 or 3. One method toaccomplish this would involve looking ahead through data to ascertainwhat presently unknown new points are to be plotted and from thisinformation selecting the optimum mode. However, this method requiresextensive additional hardware and software and is rather costly.

According to the present invention, the dx values and dy values for agiven number of previous moves are maintained in counters (not shown)and are compared in operation 69. If the counters show that one of dx ordy has not changed for the given number of previous moves, then it isreasonable to assume that the odds are it will remain the same for thenext move. Thus, if dx, for example, remained constant three consecutivetimes, then the mode would be changed to MODE 2, dx would be stored andonly dy varied. While the present embodiment checks the previous threemoves it is understood that this is simply by way of practical exampleand that any desired number of previous moves may be checked. However,as a greater number of moves are checked and found constant, the oddsincrease that the next move will remain constant, but obviously thechange to the faster mode is delayed. The usefulness of the presentmethod is clearly seen if one is plotting, for example, a y variablesuch as current as a function of constant steps in x of voltage.

Looking further at FIG. 5b, the attempt to change modes begins afterfinding at 67 that the current mode is MODE 4. The preceding three movesare checked in operation 69. If the three dxs are the same, MODE 2 isused in operation 72. If the a'xs are not the same but the dys are foundin operation 71 to be the same then MODE 3 is selected by operation 73.If, too, the dys are not the same, then MODE 4 is retained in operation74. After each move the counters are updated by operation 75. Of course,if operation 67 determines the current mode to be other than MODE 4,then the current mode is retained in operation 68.

Turning now to the first path above, it is seen that when the number ofsteps exceeds one (as determined by operations 52 or 53) then MODE 2 or3 is used. It will be recalled from above that the present embodimentdoes not look ahead within data 10 to the next new point, i.e., a pointnot yet subjected to calculation operation 20, to determine optimummode. However, to the extent that a known desired new point has beenascertained (by operation 20 in FIGS. 3 and 5a) to be more steps thanone step away, then such knowledge definitely indicates the desirabilityof using MODE 2 or 3. Accordingly, in this case the decision to changeto a faster mode is based on the calculation of total distance, i.e.,the number of moves, to the new point. Thus, after resetting to zero thecounters keeping track of the last three moves in operation 61, ifneither of dx nor dy is zero (as ascertained by operation 62) theneither MODE 2 or 3 is used in operation 64. If, however, dx or dy iszero as ascertained in operations 62 and 63 then a particular one ofMODES 2 or 3 is used. If d.\' is zero, MODE 2 is used in operation 66while a zero for dy results in a change to MODE 3 in operation 65.

The third path is entered when the number of steps is not greater thanone and some change has to be made (since the comparison in 50 foundthat the stored and calculated characters were not all the same). Thethird path ultimately uses MODE 4 at 60 to execute any move. Thus, ifboth dx and dy are sufficient to reach the desired new point, then afterupdating the counters keeping track of the last three moves (at 55) MODE4 is employed. Similarly, if neither dx nor dy is sufficient to reachthe new point as determined in 54, then MODE 4 is employed. However, ifone of dx or dy is suffieient to reach the desired new point and theother is not, then the sufficient one is set to zero and is picked up inthe remainder rather than in the first step.

Assume, for example, that the desired new point was spaced from thepresent point by A.r=16 and A =14. Thus, there is a first step of d.\=l5and d =l4 and a remainder of dx=l and d =0 as determined by operation20. The operations 54, 55 and 56 determine for the first move that thedx=l 5 is not sufficient to reach the point Ax=l6, Ay=l4 while d y=l4 issufficient. Therefore, according to the invention, instead of moving thefirst step of dx=l5 and d \=l4, rather dy is set to O as required byoperations 57, 58 and 59. Thus, the first move is dx=l5 and dy-O. As aresult, the remainder becomes dr=l and dy= 14. After the last move hasbeen made to the desired point, the values dx=l, and dy=l 4 are the lastvalues stored in the counters. If, on the next new point, a dy=l4reoccurs, as is very possible, then there will be one dy=l4 already inthe counters and the odds are thus better for ultimately obtainingenough consecutive d increments as determined by operation 69 to changeto a faster mode. Thus, by storing the original d =l4, which would notnormally have been stored, the later comparison by operation 69 willshow three consecutive identical increments earlier.

In all of the three general paths above after selecting a mode, the nextstep is to output the resulting character stream by operation 80.Thereafter the method is repeated and begins again at 90 (FIG. 5a). If,thereafter, by operations 20 and 20a it is found that the point actuallyhas been reached and typed, then a return at 91 is made to begin theprocess anew for the next desired new point. If it is calculated inoperations 20 and 20a that at least one step remains to reach theoriginal desired new point or that a remainder has to be picked up, thenthe method of FIGS. 3, 5a and 5b is repeated for each step and for theremainder. Thus, to move a distance greater than one step size,characters are generated to move the output terminal more than once andto type a blank symbol for each move but the last.

In FIG. 5a the operations 24, 25 and 26 handle the special case whereboth Ar and Ay are even multiples of the step sizes (if, too, the numberof steps is greater than one)for example, where the desired new point isAr=45 and Ay=30. There the step size in x is and in y is 10. Moreover,45 and 30 are even multiples of 15 and 10 respectively. Thus, withoutmore, the terminal would move in three steps to the desired new pointA.r=45, Ay=30 and type a blank at each step including the desired newpoint. Thereafter, a new character stream with d.\' and d both zero andhaving the required symbol would be transmitted. It requires fewercharacters to include the symbol in the character stream commanding thefinal move to the desired new point. Therefore, in operation 26 aftersetting the typed symbol to a blank the number of steps is reducedartificially by one and the distances recalculated so that the terminalstops one step from the desired new point and the artificial remainderis picked up on the last pass. Of course, if the actual symbol to betyped at the desired new point is a blank" (as determined by operation25) then operation 26 is eliminated.

Thus, there has been disclosed a method for efficiently encoding data tobe transmitted to an output terminal. It will be clear to one skilled inthe art that the above-described method may be implemented using ageneral purpose digital computer. One example of typical softwaresuitable for machine implementation by a general purpose digitalcomputer is disclosed in the Appendix attached hereto which is a Fortranprogram listing for a Model 940 Time Sharing Computer System(manufactured by Xerox Data Systems, Inc.) which will perform inaccordance with the method of the invention.

It will be apparent from the foregoing that, while particular forms ofthe invention have been illustrated and described, various modificationscan be made without departing from the spirit and scope of theinvention. Accordingly, it is not intended that the invention belimited, except as by the appended claims.

Iclaim:

1. For machine implementation, a method of encoding graphical data to bedisplayed by an output terminal, wherein the terminal responds to astream of characters representing said data, comprising the operationsof:

l. calculating the number of moves required for the terminal to reachthe next desired graphical point,

2. selecting from several operating modes the optimum mode for movingtoward said point, in each of said several modes at least one characterbeing stored and permitting a character stream to subsequently omit thestored character; and

3. generating a character stream to operate the terminal in the optimummode to obtain maximum information density in the character stream.

2. The method of claim 1 wherein said optimum mode is selected forexecuting a first move toward said graphical point, the method furtherincluding:

repeating operations (1) through (3) to command an additional move ifsaid first move is insufficient to reach said point.

3. The method of claim 1 wherein:

the calculated number of moves represents a given number of steps in twocoordinate directions, the size of each step not exceeding the maximumpossible number of increments movable by the terminal in one move, and aremainder, the size of the remainder not exceeding the above said numberofincrements.

4. The method of claim 3 wherein a symbol is to be displayed at saidpoint and the symbol and the increments of the remainder are encodedtogether in the character stream and are executed together in the finalmove.

5. The method of claim 4 wherein at least one step precedes execution ofthe remainder and for each step the symbol encoded in the characterstream represents a blank so that after each step no symbol is visuallydisplayed by the output terminal.

6. The method of claim 1 wherein the operation of selecting the optimummode further includes:

examining a given number of preceding moves to find for each location inthe character stream any characters which are the same for each move;and

after finding the same character in said given number of precedingmoves, changing to a mode capable of transmitting a greater informationdensity than the current mode.

7. The method of claim 6 wherein the process of examining said givennumber of preceding moves is performed for three such moves.

8. The method of claim 3 wherein the operation of selecting the optimummode includes:

examining the total number of steps and selecting the optimum mode basedon the number of steps.

9. The method of claim 5 wherein the operation of selecting the optimummode includes:

setting to zero the step in one coordinate direction if the incrementaldistance represented by said step is sufficient to reach said point; and

encoding said incremental distance represented by said step in saidcharacter stream only when moving through said remainder.

10. A reiterative process for machine implementation wherein graphicaldata in the form of points at which symbols are to be plotted, eachpoint being expressed in terms of x and y coordinate distances from acommon origin is encoded to be displayed by an incremental graphicaldisplay terminal receptive to characters expressing point location by xand y displacements from the immediately preceding point and by aquadrant direction from the immediately preceding point and by a symbolto be displayed at the print location and wherein the display terminalhas plural operating modes, in each mode at least one respectivecharacter being stored and permitting a character stream to subsequentlyomit the stored character, said process comprising the operations of:

l. analyzing the data for a desired new point and converting it into aform acceptable to the display terminal by selectirig new charactersdefining a first move toward the desired new point,

2. comparing for each location in the character stream the newcharacters with the stored values of the characters defining theimmediately preceding move to ascertain if any of the new characters aredifferent from those preceding,

. selecting an operating mode for said first move which compresses thenew characters in a character stream of as few characters as possible toobtain maximum information density, and

4. repeating operations (1) through (3) to command an additional move ifsaid first move is insufficient to reach the desired new point 11. Theprocess of claim wherein the operation of analyzing the data furtherincludes:

calculating the net distances Ax and Ay in each coordinate axisdirection from the immediately preceding point to the new point;

determining the quadrant of the new point with respect to the precedingpoint;

determining a step size in x and y (dx and dy) for said first move ofthe display terminal; and

calculating the number of steps required to move within one step size ofthe new point leaving a remainder to be moved ofless than one step size.

12. The process of claim 11 including utilizing a mode in which eitherdx or dy is stored if the number of steps exceeds a given number.

13. The process of claim 12 wherein said given number is one. i

14. The process of claim 11 wherein the operation of analyzing the datafurther includes:

setting the symbol to a blank if the distance to the new point isgreater than one step size.

15. The process of claim 14 wherein the operation of analyzing the datafurther includes:

ascertaining whether said Ar and Ay are both even multiples of the stepsizes.

16. The process of claim 15 wherein the operation of analyzing the datafurther includes:

setting the symbol to a blank if Ax and Ay are not both even multiplesof the step sizes.

17. The process of claim 15 wherein the operation of analyzing the datafurther includes:

setting the symbol to a blank if Ar and Ay are both even multiples ofthe step sizes; and

reducing the number of steps by one to avoid overshooting the new point.

18. The process of claim 11 wherein the operation of selecting anoperating mode includes:

comparing a given character for each of several preceding moves todetermine for each location in the character stream if the character isidentical for each move; and

utilizing an operating mode in which the given character is stored ifthe character is determined to be identical.

19 The process of claim 18 wherein the given character is compared foreach of three preceding moves.

20. The process of claim 11 wherein the operation of selecting anoperating mode includes:

examining the current mode to determine whether either a'x or dy isstored.

21. The process of claim 20 wherein the operation of selecting anoperating mode further includes:

using the current mode if, upon examining the current mode, one of dxand dy is found to be stored; and

attempting to change modes to a mode in which one ofdx or d is storedif, upon examining the current mode, neither one ofdx or dy is found tobe stored.

22. The process of claim 21 wherein the operation of attempting tochange modes includes:

comparing for each location in the character stream a given characterfor each of several preceding moves to determine if the given characteris identical for each move;

utilizing an operating mode in which the given character is stored ifthe character is found to be identical; and

using the current mode if the character is not found to be identical.

23. The process of claim 22 wherein the operation of comparing a givencharacter compares the character for three preceding moves.

24. The process of claim 11 wherein the operation of selecting anoperating mode includes:

resetting counters keeping track of the last three moves to zero, if thenumber of steps is greater than one; and

using a mode in which one of dx or d is stored.

25. The process of claim 24 wherein the operation of selecting anoperating mode further includes:

determining whether either dx or dy is zero;

if either dx or dy is zero, then using a mode having the zero characterof dx or dy stored; and

if neither dx or dy is zero, then using a mode in which either dx or dyis stored.

26. The process of claim 11 wherein the operation of selecting anoperating mode includes:

setting to zero the step in one coordinate direction if the netincremental distance represented by said step is sufficient to reachsaid point, and

encoding said incremental distance represented by said step in saidcharacter stream only when moving through said remainder.

27. For machine implementation, a method of encoding graphical data tobe displayed by an output terminal, wherein the terminal responds to astream of characters representing said data, comprising the operationsof:

l. calculating the number of moves required for the terminal to reachthe next desired graphical point, 2. selecting from several operatingmodes the optimum mode for moving toward said point, the operation ofselecting the optimum mode including: examining a given number ofpreceding moves to find for each location in the character stream anycharacters which are the same for each move; and

after finding the same character in said given number of precedingmoves, changing to a mode capable of transmitting a greater informationdensity than the current mode; and

3. generating a character stream to operate the terminal in the optimummode.

28. The method of claim 27 wherein the process of examining said givennumber of preceding moves is performed for three such moves.

29. The method of claim 27 wherein:

the calculated number of moves represents a given number of steps in twocoordinate directions, the size of each step not exceeding the maximumpossible number of increments movable by the terminal in one move, and aremainder, the size of the remainder not exceeding the above said numberof increments.

30. The method of claim 29 wherein a symbol is to be displayed at saidpoint and the symbol and the increments of the remainder are encodedtogether in the character stream and are executed together in the finalmove.

31. The method of claim 30 wherein at least one step precedes executionof the remainder and for each step the symbol encoded in the characterstream represents a blank so that after each step no symbol is visuallydisplayed by the output terminal.

32. The method of claim 29 wherein the operation of selecting theoptimum mode further includes:

examining the total number of steps and selecting the op timum modebased on the number of steps.

33. The method of claim 31 wherein the operation of selecting theoptimum mode further includes:

setting to zero the step in one coordinate direction if the incrementaldistance represented by said step is sufficient to reach said point; and

encoding said incremental distance represented by said step in saidcharacter stream only when moving through said remainder.

34. For machine implementation, a method of encoding graphical data tobe displayed by an output terminal comprising the operations of:

1. calculating the number of moves required for the terminal to reachthe next desired graphical point, the calculated number of movesrepresenting a given number of steps in two coordinate directions, thesize of each step not exceeding the maximum possible number ofincrements movable by the terminal in one move, and a remainder, thesize of the remainder not exceeding the above said number of increments,and wherein a symbol is to be displayed at said point; t

selecting from several operating modes the optimum mode for movingtoward said point; and it generating a character stream to operate theterminal i the optimum mode, wherein at least one step precedesexecution of the remainder and for each step the symbol encoded in thecharacter stream represents a blank so that after each step no symbol isvisually displayed by the output terminal, with the symbol and theincrements of the

1. For machine implementation, a method of encoding graphical data to bedisplayed by an output terminal, wherein the terminal responds to astream of characters representing said data, comprising the operationsof:
 1. calculating the number of moves required for the terminal toreach the next desired graphical point,
 2. selecting from severaloperating modes the optimum mode for moving toward said point, in eachof said several modes at least one character being stored and permittinga character stream to subsequently omit the stored character; and 3.generating a character stream to operate the terminal in the optimummode to obtain maximum information density in the character stream. 2.selecting from several operating modes the optimum mode for movingtoward said point, in each of said several modes at least one characterbeing stored and permitting a character stream to subsequently omit thestored character; and
 2. selecting from several operating modes theoptimum mode for moving toward said point; and
 2. comparing foR eachlocation in the character stream the new characters with the storedvalues of the characters defining the immediately preceding move toascertain if any of the new characters are different from thosepreceding,
 2. The method of claim 1 wherein said optimum mode isselected for executing a first move toward said graphical point, themethod further including: repeating operations (1) through (3) tocommand an additional move if said first move is insufficient to reachsaid point.
 2. selecting from several operating modes the optimum modefor moving toward said point, the operation of selecting the optimummode including: examining a given number of preceding moves to find foreach location in the character stream any characters which are the samefor each move; and after finding the same character in said given numberof preceding moves, changing to a mode capable of transmitting a greaterinformation density than the current mode; and
 3. generating a characterstream to operate the terminal in the optimum mode.
 3. The method ofclaim 1 wherein: the calculated number of moves represents a givennumber of steps in two coordinate directions, the size of each step notexceeding the maximum possible number of increments movable by theterminal in one move, and a remainder, the size of the remainder notexceeding the above said number of increments.
 3. selecting an operatingmode for said first move which compresses the new characters in acharacter stream of as few characters as possible to obtain maximuminformation density, and
 3. generating a character stream to operate theterminal in the optimum mode, wherein at least one step precedesexecution of the remainder and for each step the symbol encoded in thecharacter stream represents a blank so that after each step no symbol isvisually displayed by the output terminal, with the symbol and theincrements of the remainder being encoded in the character stream andexecuted together in the final move; and wherein the operation ofselecting the optimum mode includes: setting to zero the step in onecoordinate direction if the incremental distance represented by saidstep is sufficient to reach said point; and encoding said incrementaldistance represented by said step in said character stream only whenmoving through said remainder.
 3. generating a character stream tooperate the terminal in the optimum mode to obtain maximum informationdensity in the character stream.
 4. repeating operations (1) through (3)to command an additional move if said first move is insufficient toreach the desired new point.
 4. The method of claim 3 wherein a symbolis to be displayed at said point and the symbol and the increments ofthe remainder are encoded together in the character stream and areexecuted together in the final move.
 5. The method of claim 4 wherein atleast one step precedes execution of the remainder and for each step thesymbol encoded in the character stream represents a blank so that aftereach step no symbol is visually displayed by the output terminal.
 6. Themethod of claim 1 wherein the operation of selecting the optimum modefurther includes: examining a given number of preceding moves to findfor each location in the character stream any characters which are thesame for each move; and after finding the same character in said givennumber of preceding moves, changing to a mode capable of transmitting agreater information density than the current mode.
 7. The method ofclaim 6 wherein the process of examining said given number of precedingmoves is performed for three such moves.
 8. The method of claim 3wherein the operation of selecting the optimum mode includes: examiningthe total number of steps and selecting the optimum mode based on thenumber of steps.
 9. The method of claim 5 wherein the operation ofselecting the optimum mode includes: setting to zero the step in onecoordinate direction if the incremental distance represented by saidstep is sufficient to reach said point; and encoding said incrementaldistance represented by said step in said character stream only whenmoving through said remainder.
 10. A reiterative process for machineimplementation wherein graphical data in the form of points at whichsymbols are to be plotted, each point being expressed in terms of x andy coordinate distances from a common origin is encoded to be displayedby an incremental graphical display terminal receptive to charactersexpressing point location by x and y displacements from the immediatelypreceding point and by a quadrant direction from the immediatelypreceding point and by a symbol to be displayed at the print locationand wherein the display terminal has plural operating modes, in eachmode at least one respective character being stored and permitting acharacter stream to subsequently omit the stored character, said processcomprising the operations of:
 11. The process of claim 10 wherein theoperation of analyzing the data further includes: calculating the netdistances Delta x and Delta y in each coordinate axis direction from theimmediately preceding point to the new point; determining the quadrantof the new point with respect to the preceding point; determining a stepsize in x and y (dx and dy) for said first move of the display terminal;and calculating the number of steps required to move within one stepsize of the new point leaving a remainder to be moved of less than onestep size.
 12. The process of claim 11 including utilizing a mode inwhich either dx or dy is stored if the number of steps exceeds a givennumber.
 13. The process of claim 12 wherein said given number is one.14. The process of claim 11 wherein the operation of analyzing the datafurther includes: setting the symbol to a blank if the distance to thenew point is greater than one step size.
 15. The process of claim 14wherein the operation of analyzing the data further includes:ascertaining whether said Delta x and Delta y are both even multiples ofthe step sizes.
 16. The process of claim 15 wherein the operation ofanalyzing the data further includes: setting the symbol to a blank ifDelta x and Delta y are not both even multiples of the step sizes. 17.The process of claim 15 wherein the operation of analyzing the datafurther includes: setting the symbol to a blank if Delta x and Delta yare both even multiples of the step sizes; and reducing the number ofsteps by one to avoid overshooting the new point.
 18. The process ofclaim 11 wherein the operation of selecting an operating mode includes:comparing a given character for each of several preceding moves todetermine for each location in the character stream if the character isidentical for each move; and utilizing an operating mode in which thegiven character is stored if the character is determined to beidentical.
 19. The process of claim 18 wherein the given character iscompared for each of three preceding moves.
 20. The process of claim 11wherein the operation of selecting an operating mode includes: examiningthe current mode to determine whether either dx or dy is stored.
 21. Theprocess of claim 20 wherein the operation of selecting an operating modefurther includes: using the current mode if, upon examining the currentmode, one of dx and dy is found to be stored; and attempting to changemodes to a mode in which one of dx or dy is stored if, upon examiningthe current mode, neither one of dx or dy is found to be stored.
 22. Theprocess of claim 21 wherein the operation of attempting to change modesincludes: comparing for each location in the character stream a givencharacter for each of several preceding moves to determine if the givencharacter is identical for each move; utilizing an operating mode inwhich the given character is stored if the character is found to beidentical; and using the current mode if the character is not found tobe identical.
 23. The process of claim 22 wherein the operation ofcomparing a given character compares the character for three precedingmoves.
 24. The process of claim 11 wherein the operation of selecting anoperating mode includes: resetting counters keeping track of the lastthree moves to zero, if the number of steps is greater than one; andusing a mode in which one of dx or dy is stored.
 25. The process ofclaim 24 wherein the operation of selecting an operating mode furtherincludes: determining whether either dx or dy is zero; if either dx ordy is zero, then using a mode having the zero character of dx or dystored; and if neither dx or dy is zero, then using a mode in whicheither dx or dy is stored.
 26. The process of claim 11 wherein theoperation of selecting an operating mode includes: setting to zero thestep in one coordinate direction if the net incremental distancerepresented by said step is sufficient to reach said point, and encodingsaid incremental distance represented by said step in said characterstream only when moving through said remainder.
 27. For machineimplementation, a method of encoding graphical data to be displayed byan output terminal, wherein the terminal responds to a stream ofcharacters representing said data, comprising the operations of:
 28. Themethod of claim 27 wherein the process of examining said given number ofpreceding moves is performed for three such moves.
 29. The method ofclaim 27 wherein: the calculated number of moves represents a givennumber of steps in two coordinate directions, the size of each step notexceeding the maximum possible number of increments movable by theterminal in one move, and a remainder, the size of the remainder notexceeding the above said number of increments.
 30. The method of claim29 wherein a symbol is to be displayed at said point and the symbol andthe increments of the remainder are encoded together in the characterstream and are executed together in the final move.
 31. The method ofclaim 30 wherein at least one step precedes execution of the remainderand for each step the symbol encoded in the character stream representsa blank so that after each step no symbol is visually displayed by theoutput terminal.
 32. The method of claim 29 wherein the operation ofselecting the optimum mode further includes: examining the total numberof steps and selecting the optimum mode based on the number of steps.33. The method of claim 31 wherein the operation of selecting theoptimum mode further includes: setting to zero the step in onecoordinate direction if the incremental distance represented by saidstep is sufficient to reach said point; and encoding said incrementaldistance represented by said step in said character stream only whenmoving through said remainder.
 34. For machine implementation, a methodof encoding graphical data to be displayed by an output terminalcomprising the operations of: